#### Makefile for the Emacs Manual

# Copyright (C) 1994, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
#   2004, 2005, 2006, 2007, 2008, 2009, 2010  Free Software Foundation, Inc.

# This file is part of GNU Emacs.

# GNU Emacs is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.

# GNU Emacs is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.

# You should have received a copy of the GNU General Public License
# along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.


# Where to find the source code.  $(srcdir) will be the man
# subdirectory of the source tree.  This is
# set by the configure script's `--srcdir' option.
srcdir=@srcdir@
top_srcdir=@top_srcdir@

# Tell make where to find source files; this is needed for the makefiles.
VPATH=@srcdir@

## Where the output files go.
## Note that the setfilename command in the .texi files assumes this.
infodir=../../info
# Directory with the (customized) texinfo.tex file.
texinfodir = $(srcdir)/../misc

# The makeinfo program is part of the Texinfo distribution.
# Use --force so that it generates output even if there are errors.
MAKEINFO = makeinfo --force

INFO_TARGETS = $(infodir)/emacs
DVI_TARGETS  = emacs.dvi


TEXI2DVI = texi2dvi
TEXI2PDF = texi2pdf

# The following rule does not work with all versions of `make'.
.SUFFIXES: .texi .dvi
.texi.dvi:
	$(TEXI2DVI) $<

ENVADD = TEXINPUTS="$(srcdir):$(texinfodir):$(TEXINPUTS)" MAKEINFO="$(MAKEINFO) -I$(srcdir)"


EMACS_XTRA=\
	$(srcdir)/arevert-xtra.texi \
	$(srcdir)/cal-xtra.texi \
	$(srcdir)/dired-xtra.texi \
	$(srcdir)/picture-xtra.texi \
	$(srcdir)/emerge-xtra.texi \
	$(srcdir)/vc-xtra.texi \
	$(srcdir)/vc1-xtra.texi \
	$(srcdir)/fortran-xtra.texi \
	$(srcdir)/msdog-xtra.texi

EMACSSOURCES= \
	${srcdir}/emacs.texi \
	${srcdir}/doclicense.texi \
	${srcdir}/gpl.texi \
	${srcdir}/screen.texi \
	${srcdir}/commands.texi \
	${srcdir}/entering.texi \
	${srcdir}/basic.texi \
	${srcdir}/mini.texi \
	${srcdir}/m-x.texi \
	${srcdir}/help.texi \
	${srcdir}/mark.texi \
	${srcdir}/killing.texi \
	${srcdir}/regs.texi \
	${srcdir}/display.texi \
	${srcdir}/search.texi \
	${srcdir}/fixit.texi \
	${srcdir}/files.texi \
	${srcdir}/buffers.texi \
	${srcdir}/windows.texi \
	${srcdir}/frames.texi \
	${srcdir}/mule.texi \
	${srcdir}/major.texi \
	${srcdir}/indent.texi \
	${srcdir}/text.texi \
	${srcdir}/programs.texi \
	${srcdir}/building.texi \
	${srcdir}/maintaining.texi \
	${srcdir}/abbrevs.texi \
	${srcdir}/sending.texi \
	${srcdir}/rmail.texi \
	${srcdir}/dired.texi \
	${srcdir}/calendar.texi \
	${srcdir}/misc.texi \
	${srcdir}/custom.texi \
	${srcdir}/trouble.texi \
	${srcdir}/cmdargs.texi \
	${srcdir}/xresources.texi \
	${srcdir}/anti.texi \
	${srcdir}/macos.texi \
	${srcdir}/msdog.texi \
	${srcdir}/gnu.texi \
	${srcdir}/glossary.texi \
	${srcdir}/ack.texi \
	${srcdir}/kmacro.texi \
	$(EMACS_XTRA)

info: $(infodir) $(INFO_TARGETS)

$(infodir):
	mkdir $@

dvi: $(DVI_TARGETS)

# Note that all the Info targets build the Info files
# in srcdir.  There is no provision for Info files
# to exist in the build directory.
# In a distribution of Emacs, the Info files should be up to date.

emacs : $(infodir)/emacs

$(infodir)/emacs: ${EMACSSOURCES}
	cd $(srcdir); $(MAKEINFO) emacs.texi

emacs.dvi: ${EMACSSOURCES}
	$(ENVADD) $(TEXI2DVI) ${srcdir}/emacs.texi

emacs.pdf: ${EMACSSOURCES}
	$(ENVADD) $(TEXI2PDF) ${srcdir}/emacs.texi


emacs-xtra.dvi: emacs-xtra.texi $(EMACS_XTRA)
	$(ENVADD) $(TEXI2DVI) ${srcdir}/emacs-xtra.texi

emacs-xtra.pdf: emacs-xtra.texi $(EMACS_XTRA)
	$(ENVADD) $(TEXI2PDF) ${srcdir}/emacs-xtra.texi


mostlyclean:
	rm -f *.log *.cp *.fn *.ky *.op *.ops *.pg *.vr core *.tp *.core
	rm -f *.aux *.cps *.fns *.kys *.pgs *.vrs *.toc

clean: mostlyclean
	rm -f *.dvi

distclean: clean
#	rm -f Makefile

maintainer-clean: distclean
	for file in $(INFO_TARGETS); do rm -f $${file}*; done


# Formerly this directory had texindex.c and getopt.c in it
# and this makefile built them to make texindex.
# That caused trouble because this is run entirely in the source directory.
# Since we expect to get texi2dvi from elsewhere,
# it is ok to expect texindex from elsewhere also.


### Makefile ends here
